/*******************************************************************************
 * Describe: 本js为项目基础的Js框架.很多公共方法均放到此文件中
 * 
 * Author : monlyu <br>
 * Date : 2010-01-14 <br>
 * Version : 1.05
 * 
 * @see Jqeury
 ******************************************************************************/
var BaseJs = {
	root : '/news/',// 网站的目录结构,会在登录以后对这个值进行设置
	actEnd : '.action', // 默认Action的结尾
	submiting : false, // 判断表单是否正在提交
	ajaxing : false,// 是否正在进行ajax提交
	// 获取路径的action
	action : function(uri) {
		return BaseJs.root + uri + BaseJs.actEnd;
	},
	// 获取全路径
	fullAction : function(action) {
		var index = action.indexOf('?');
		if (index < 0) {
			return BaseJs.action(action);
		} else {
			return BaseJs.action(action.substring(0, index))
					+ action.substring(index);
		}
	},
	// 此函数可以带参数
	toAction : function(action, target) {
		var index = action.indexOf('?');
		var url;
		if (index < 0) {
			url = BaseJs.action(action);
		} else {
			url = BaseJs.action(action.substring(0, index))
					+ action.substring(index);
		}
		BaseJs.toUrl(url, target);
	},
	toUrl : function(url, target) {
		if (target == undefined)
			target = '_self';
		window.open(url, target);
		
	},
	// 封装alert,为了更好的整体修改alert
	alert : function(msg, cls) {
		alert(msg);
	},
	hideAlert : function(){
		$('#jqueryFloatingMessage').hide();
	},
	// 封装confirm,为了更好的整体修改confirm
	confirm : function(msg) {
		return window.confirm(msg);
	},
	// 从新加载页面
	reload : function() {
		window.open(window.location, '_self');
	},
	// 封装prompt,为了更好的扩展该类
	prompt : function(msg) {
		return window.prompt(msg);
	},
	optImgRoot : function() {
		return BaseJs.root + "common/images/optImg/";
	},
	imgRoot : function(img) {
		return BaseJs.root + 'common/images/' + img;
	},
	getUri : function() {
		var url = location.href;
		var stop = url.indexOf('?') == -1 ? url.length : url.indexOf('?');
		return url.substring(url.indexOf(BaseJs.root), stop);
	},
	isFF : function() {
		return BaseJs.checkDoor().substring(0, 2) == 'ff';
	},
	setReadonly : function() {
		$('form select').each(function() {
			$(this).attr('disabled', true);
		});
		$('form input,form textarea').each(function() {
			$(this).attr('readonly', true);
		});
		$('form .dateText, form .dateTimeText').each(function() {
			$(this).datepicker('disable');
		});
		$('form input[type=radio]+label,form input[type=checkbox]+label')
				.hide();
		$('form input[type=radio][checked]+label,form input[type=checkbox][checked]+label')
				.show();
	},
	/**
	 * 检查浏览器的类型
	 */
	checkDoor : function() {
		var userAgent = navigator.userAgent.toLowerCase();
		var version = (userAgent.match(/.(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1];
		if (/webkit/.test(userAgent)) {
			return 'sf' + version;
		}
		if (/opera/.test(userAgent)) {
			return 'op' + version;
		}
		if (/msie/.test(userAgent) && !/opera/.test(userAgent)) {
			return 'ie' + version;
		}
		if (/mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent)) {
			return 'ff' + version;
		}
	},
	getAjaxData : function(responseText, back, error) {
		responseText = $.trim(responseText);
		var flag = responseText.substring(0, 4);
		if (flag != 'text' && flag != 'json') {
			return;
		}
		responseText = responseText.substring(4);
		if ($.isFunction(back)) {
			if (flag == 'json') {
				responseText = eval('[' + responseText + ']')[0];
			}
			back(responseText);
		} else if (responseText.length != 0) {
			BaseJs.alert(responseText);
		}
	}
}

jQuery.extend({
	alert : function(msg){BaseJs.alert(msg)}
});
/*------------扩展Jquery 实现ajax---------------*/
// 实现ajax提交,并且验证表单是否通过,通过Jquery form 表单进行扩展
// http://jquery.malsup.com/form/#ajaxForm
jQuery.fn.vaildAjax = function(succs, error) {
	var objForm = $(this);
	objForm.validationEngine();
	var options = {
		beforeSubmit : function() {
			if (BaseJs.submiting) {
				return false;
			}
			return objForm.validationEngine( {
				returnIsValid : true
			});
		},
		success : function(responseText, statusText) {
			BaseJs.submiting = false;
			BaseJs.getAjaxData(responseText, succs);
		},
		error : function() {
			BaseJs.submiting = false;
		}
	};
	objForm.ajaxForm(options);
}
/**
 * 使用ajax获取值,不用前台组装
 * 
 * @param {Object}
 *            url 路径
 * @param {Object}
 *            callbak 会调函数
 * @param {Object}
 *            error 错误回调函数
 */
jQuery.extend( {
	urlAjax : function(url, callbak, error) {
		url = BaseJs.fullAction(url);
		$.ajax( {
			url : url,
			cache : false,
			beforeSubmit : function() {
				return true;
			},
			success : function(data) {
				BaseJs.getAjaxData(data, callbak);
			},
			error : function(data) {
				alert(data)
			}
		});
	},
	postAjax : function(url,data,callbak){
		url = BaseJs.fullAction(url);
		var html = $.ajax({
				url : url,
				data : data,
				type : 'POST',
				async: false
			 }).responseText;
		if($.isFunction(callbak)){
			callbak(html);
		}
	},
	urlAjaxData : function(url, data, callbak, error) {
		url = BaseJs.fullAction(url);
		$.ajax( {
			url : url,
			data  : data,
			cache : false,
			beforeSubmit : function() {
				return true;
			},
			success : function(data) {
				BaseJs.getAjaxData(data, callbak);
			},
			error : function(data) {
				alert(data)
			}
		});
	}
})
 /** *******************默认窗口事件*********************** */
$(window).ready(function() {
	var top = '<div id="xsnazzy"><b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b><div class="xboxcontent">';
	var btm = '</div><b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"></b></b></div>';
	$('#receArer').each(function() {
		$(this).html(top + $(this).html() + btm);
	});
	//去除两个日期选择框同时出现的情况,宽度减少为40%
	$('table.form td:has(.datetime)').each(function(){
		var mar = $($(this).children('.datetime'));
		if(mar.size()==2){mar.each(function(){$(this).css({'width': '40%'});});
		}
	});
});